%********************************************************************
% Appendix
%*******************************************************
\myChapter{Environment setup}\label{ch:appendix_code}
The  development tools that have been used to carry out the project are:
\begin{itemize}
 \item Eclipse IDE 3.4
 \item Eclipse Modeling Tools (EMF) 2.4
 \item Graphical Modeling Framework (GMF) 2.1
\end{itemize}

To setup the environment avoiding unsolved plugins dependencies, the best package to be used is the Eclipse Modeling Tools\footnote{Download from \url{http://www.eclipse.org/downloads/packages/}}. Assuming that the project files have been uploaded on the 
\begin{center}
	\url{http://code.google.com/p/ogsadai-wf-vis/source/checkout} 
\end{center}
using the \textit{CVS Repository Exploring} view, import all the project in the workspace. This is the list of projects that should appear in the workspace:

\begin{itemize}
	\item gsoc.ogsadai.client
	\item gsoc.ogsadai.custom
	\item gsoc.ogsadai.diagram
	\item gsoc.ogsadai.gmf
	\item gsoc.ogsadai.librarywrapper
	\item gsoc.ogsadai.model
	\item gsoc.ogsadai.model.edit
	\item gsoc.ogsadai.model.editor
	\item gsoc.ogsadai.model.properties
	\item gsoc.ogsadai.plugin.librarywrapper
\end{itemize}

The next sections are providing a brief explanation of each module, focusing on the structure and purpose of the modules, and grouping them by functionality.

\section{Libraries}
This module (gsoc.ogsadai.plugin.librarywrapper) contains all the libraries that are needed to access the Client Toolkit from eclipse. The jars that are included in the plugin are the same that are added by the \textit{setenv.sh} script, plus jars that are added by the extension pack 1. It's possible to divide the jars in four groups:
\begin{enumerate}
	\item OGSA-DAI: jars related to the Client Toolkit
	\item OGSA-DAI Globus Toolkit: jars used by the Client Toolkit to access to WSRF services
	\item OGSA-DAI Third party: jars provided by third parties
	\item OGSA-DAI Extension pack 1: jars that are provided by the Extension pack 1
\end{enumerate}

\section{OGSA-DAI client}
This module (gsoc.ogsadai.client) contains the client that interacts with the OGSA-DAI server. The functionalities that are implemented so far are:
\begin{itemize}
	\item Activities and resource discovery
	\item Workflow deployment
\end{itemize}

\section{Workflow model}
The modules involved are: 
\begin{itemize}
	\item gsoc.ogsadai.model: contains the model definition (request.genmodel). The code in the packages is automatically generated, starting from the Request.xsd definition. In order to rebuild the model select the request.model file, and then reload (this procedure is needed when there is a change to the model)
	\item gsoc.ogsadai.model.edit: contains the EMF.Edit generated code. The file that have been heavily modified is \textit{ActivityTypeItemProvider}.
	\item gsoc.ogsadai.model.editor: contains the EMF.Editor generated code
\end{itemize}

\section{Graphical model}
The modules involved are:
\begin{itemize}
	\item gsoc.ogsadai.gmf: contains the gmf models definition that are explained in Section\ref{sec:gmf} of the report. No source code here.
	\item gsoc.ogsadai.diagram: contains all the GMF generated code. A class (CustomProperties) has been added in order to display a property editor for the diagram properties.
	\item gsoc.ogsadai.custom: contains the rcp code that is not automatically generated by GMF: DeployWorkflowAction Action, and OutputView View.
\end{itemize}

\section{Diagram properties}
The module gsoc.ogsadai.model.properties can be considered an helper module, containing the EMF model definition for the properties related to the diagram. The module contains the  model definition, the EMF and EMF.Edit generated code.